package com.hooenergy.etl.starter.core;

import java.util.List;
import java.util.Map;

public interface IQueryDao<E> {

    /**
     * 获取数据条目总数
     * @param queryMap 查询条件
     * @param start 统计起点
     * @param end 统计终点
     * @param key 过滤Key
     * @return 分组数据条目总数
     */
    Long total(Map<String, Object> queryMap, Long start, Long end, String key);

    /**
     * 分页获取条目
     * @param queryMap 查询条件
     * @param start 统计起点
     * @param end 统计终点
     * @param key 过滤Key
     * @param offset 记录起始位置
     * @param size 页数
     * @return 数据详情
     */
    List<E> find(Map<String, Object> queryMap, Long start, Long end, String key, long offset, long size);


    /**
     * 获取所有条目
     * @param queryMap 查询条件
     * @param start 统计起点
     * @param end 统计终点
     * @param key 过滤Key
     * @return 数据详情
     */
    List<E> find(Map<String, Object> queryMap, Long start, Long end, String key);
}
